#include <REGX52.H>
#include "LCD1602.h"
#include "Key.h"
#include "AT24C02.h"
#include "Delay.h"

unsigned char KeyNum;
unsigned int Num;  //为16位数据

void main()
{
	LCD_Init();
	LCD_ShowNum(1,1,Num,5);
	while(1)
	{
		KeyNum=Key();
		if (KeyNum==1)  //K1按键，Num自增
		{
			Num++;
			LCD_ShowNum(1,1,Num,5);
		}
		if (KeyNum==2)  //K2按键，Num自减

		{
			Num--;
			LCD_ShowNum(1,1,Num,5);
		}
		if (KeyNum==3)  //K3按键，向AT24C02写入数据

		{
			AT24C02_WriteByte(0,Num%256);  //先取出Num的低八位
			//第一位指定地址，地址的范围是一个unsigned char的存储空间是256个字节，就是0~255
			//第二位指定数据，即为你想存储的数据
			Delay(5);  //单片机规定写入数据后需要延时5ms，需要改变芯片的物理特性，需要更长的时间
			AT24C02_WriteByte(0,Num/256);  //先取出Num的高八位
			Delay(5);
			LCD_ShowString(2,1,"Write OK");
			Delay(1000);
			LCD_ShowString(2,1,"        ");
		}
		if(KeyNum==4)	//K4按键，从AT24C02读取数据
		{
			Num=AT24C02_ReadByte(0);  //读取了低八位的数据
			//读取数据时的参数是存储数据的相应地址
			Num|=AT24C02_ReadByte(1)<<8;  //读取高八位数据
			LCD_ShowNum(1,1,Num,5);
			LCD_ShowString(2,1,"Read OK ");
			Delay(1000);
			LCD_ShowString(2,1,"        ");
		}
	}
}